package org.kjs.common.clone;

import java.util.List;

import org.kjs.common.clone.exception.CloneNotSupportedException;

/**
 * A tool clone java POJO.
 */
public interface Clone {

    /**
     * Check the object is the java basic data type.
     * @param object Object of java POJO.
     * @param <V>
     * @return boolean
     */
    <V> boolean isDirectCloneObject(V object);

    /**
     * Clone object.
     * @param original original object
     * @param <V>
     * @return cloned object
     * @throws CloneNotSupportedException
     */
    <V> V clone (V original) throws CloneNotSupportedException;

}
